in-source testing
テストコードとテスト対象のコードが同じファイルにあること
Rust
言語組み込みのアトリビュートシステムによってプロダクションビルド時に消されるモジュールが書ける
Vitest
import.metaで条件分岐し、プロダクションビルドではコンパイラ側で消す
define: { "import.meta.vitest": "undefined" } とかしておくとdead-code elliminationされて消える
言語のモジュールシステムとアクセス指定の設計とかにもよるが、プライベート関数のテストが可能